import request from '@/utils/request'

/**
 * 获取课程资源列表
 * @param {Object} params - 查询参数
 * @param {string} params.productId - 商品ID
 * @param {string} params.resourceType - 资源类型
 * @param {string} params.status - 状态
 * @returns {Promise} Promise对象
 */
export function getResourceList(params) {
  return request({
    url: '/course_resource/list',
    method: 'get',
    params
  })
}

/**
 * 获取课程资源详情
 * @param {string} resourceId - 资源ID
 * @returns {Promise} Promise对象
 */
export function getResource(resourceId) {
  return request({
    url: `/course_resource/${resourceId}`,
    method: 'get'
  })
}

/**
 * 新增课程资源
 * @param {Object} data - 资源数据
 * @param {string} data.productId - 商品ID
 * @param {string} data.title - 资源标题
 * @param {string} data.resourceType - 资源类型
 * @param {string} data.url - 资源URL
 * @param {number} [data.duration] - 时长(秒)
 * @param {number} [data.size] - 大小(字节)
 * @param {number} [data.sortOrder=0] - 排序号
 * @param {string} [data.status='0'] - 状态
 * @returns {Promise} Promise对象
 */
export function addResource(data) {
  return request({
    url: '/course_resource',
    method: 'post',
    data
  })
}

/**
 * 修改课程资源
 * @param {Object} data - 资源数据
 * @param {string} data.resourceId - 资源ID
 * @param {string} data.title - 资源标题
 * @param {string} data.resourceType - 资源类型
 * @param {string} data.url - 资源URL
 * @param {number} [data.duration] - 时长(秒)
 * @param {number} [data.size] - 大小(字节)
 * @param {number} [data.sortOrder] - 排序号
 * @param {string} [data.status] - 状态
 * @returns {Promise} Promise对象
 */
export function updateResource(data) {
  return request({
    url: '/course_resource',
    method: 'put',
    data
  })
}

/**
 * 删除课程资源
 * @param {string} resourceId - 资源ID
 * @returns {Promise} Promise对象
 */
export function deleteResource(resourceId) {
  return request({
    url: `/course_resource/${resourceId}`,
    method: 'delete'
  })
}

/**
 * 更新资源排序
 * @param {Array} data - 排序数据数组
 * @param {string} data[].resourceId - 资源ID
 * @param {number} data[].sortOrder - 排序号
 * @returns {Promise} Promise对象
 */
export function updateResourceSort(data) {
  return request({
    url: '/course_resource/sort',
    method: 'put',
    data
  })
}